package com.epalmpay.controller.ys.index;

import com.epalmpay.commom.BaseController;
import com.epalmpay.dto.mall.MallGoodOutDTO;
import com.epalmpay.dto.merchant.index.StatisGroupDayOutDTO;
import com.epalmpay.dto.prepurchase.PrePurActivityStaticOutDTO;
import com.epalmpay.dto.yunliu.index.merchant.PreActivityOutDTO;
import com.epalmpay.dto.yunliu.index.merchant.YsGroupIndexInDTO;
import com.epalmpay.dto.yunliu.index.merchant.YsGroupIndexListOutDTO;
import com.epalmpay.entity.*;
import com.epalmpay.entity.profit.Profit;
import com.epalmpay.service.ys.indexService.IYsIndexService;
import com.epalmpay.status.Rescode;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import javax.annotation.Resource;
import java.util.List;

/** 
 * 说明：ys渠道首页
 * 创建人：gwn
 * 创建时间：2017-09-07
 */
@Controller
@RequestMapping(value="/merchant/ys")
public class YsIndexController  extends BaseController{

	@Resource
	private IYsIndexService ysIndexService;


	
	
	@RequestMapping(value="/index")
	@ResponseBody
	public YsGroupIndexListOutDTO index(YsGroupIndexInDTO groupIndexInDTO){

		YsGroupIndexListOutDTO groupIndexListOutDTO= new YsGroupIndexListOutDTO();
		
		try {
			//查询今日新增会员数
			Member member = ysIndexService.queryAddTodayMemberCount(groupIndexInDTO);
			groupIndexListOutDTO.setMember(member);

			//查询昨日新增会员数
			groupIndexInDTO.setTodayStatisDate(null);//清空上面的日期
			Member member1 = ysIndexService.queryAddYestMemberCount(groupIndexInDTO);
			groupIndexListOutDTO.setMember1(member1);

			//今日商城订单数. 今日商城订单金额
			groupIndexInDTO.setTodayStatisDate(null);//清空上面的日期
			StatisGroupDay statisGroupDay = ysIndexService.queryTodayAddMemberCount(groupIndexInDTO);
			groupIndexListOutDTO.setStatisGroupDay(statisGroupDay);

			//查询昨日新增会员数
//			groupIndexInDTO.setTodayStatisDate(null);//清空上面的日期
//			StatisGroupDay statisGroupDay1 =ysIndexService.queryYestTodayAddMemberCount(groupIndexInDTO);
//			groupIndexListOutDTO.setStatisGroupDay1(statisGroupDay1);

			//本月新增预采购计划 计划总额
			groupIndexInDTO.setStatisDate(null);////清空上面的日期
			PrePurchaseActivity prePurchaseActivity = ysIndexService.queryPrepurchaseActivityCount(groupIndexInDTO);
			groupIndexListOutDTO.setPrePurchaseActivity(prePurchaseActivity);

			//本月新增门店数 门店总数,本月新增代理商总数
//			groupIndexInDTO.setStatisDate(null);//清空上面的日期
//			StatisGroup statisGroup = ysIndexService.queryStatisGroupData(groupIndexInDTO);
//			groupIndexListOutDTO.setStatisGroup(statisGroup);

			//本月新增门店数 门店总数
			groupIndexInDTO.setStatisDate(null);////清空上面的日期
			Shop shop = ysIndexService.queryAddShopCount(groupIndexInDTO);
			groupIndexListOutDTO.setShop(shop);

			//本月新增代理商总数
			groupIndexInDTO.setStatisDate(null);////清空上面的日期
			Agent agent1 = ysIndexService.queryAddAgentCount(groupIndexInDTO);
			groupIndexListOutDTO.setAgent1(agent1);



            //本月OBD终端激活数
			groupIndexInDTO.setStatisDate(null);//清空上面的日期
			YsObd ysObd =ysIndexService.queryObdCount(groupIndexInDTO);
			groupIndexListOutDTO.setYsObd(ysObd);

			//本月OBD分配数量
			groupIndexInDTO.setStatisDate(null);//清空上面的日期
			YsObd ysObd1 =ysIndexService.queryObddistributionCount(groupIndexInDTO);
			groupIndexListOutDTO.setYsObd1(ysObd1);

			//今日商城订单总数 代发货订单总数
			groupIndexInDTO.setStatisDate(null);//清空上面的日期
			OrderGood orderGood =ysIndexService.queryOrderGoodCount(groupIndexInDTO);
			groupIndexListOutDTO.setOrderGood(orderGood);

			//本月新增预采购额度(指的是代理商)
			groupIndexInDTO.setStatisDate(null);
			Agent agent = ysIndexService.queryPreAmount(groupIndexInDTO);
			groupIndexListOutDTO.setAgent(agent);

			//今日目前交易额
			groupIndexInDTO.setStatisDate(null);
			TradeOffline tradeOffline =ysIndexService.queryDayTradeAmount(groupIndexInDTO);
			groupIndexListOutDTO.setTradeOffline(tradeOffline);

			//预计今日产生分润总额
			groupIndexInDTO.setStatisDate(null);
			Profit profit = ysIndexService.queryDayProfitAmount(groupIndexInDTO);
			groupIndexListOutDTO.setProfit(profit);

			//今日预采购交易额
			groupIndexInDTO.setStatisDate(null);
			PrepurchaseActivityStatis prepurchaseActivityStatis = ysIndexService.queryDayPrepurchaseAmount(groupIndexInDTO);
			groupIndexListOutDTO.setPrepurchaseActivityStatis(prepurchaseActivityStatis);

			//预采购今日产生分润
			groupIndexInDTO.setStatisDate(null);
			Profit preProfit = ysIndexService.queryDayPreProfitAmount(groupIndexInDTO);
			groupIndexListOutDTO.setPreProfit(preProfit);


			//本月商品销量排行前5名
			groupIndexInDTO.setStatisDate(null);
		    List<MallGoodOutDTO> mallGoodOutDTOList=ysIndexService.queryMallGoodCount(groupIndexInDTO);
		    groupIndexListOutDTO.setMallGoodOutDTOList(mallGoodOutDTOList);


			//本月预采购活动概况前5
			groupIndexInDTO.setStatisDate(null);
			List<PreActivityOutDTO> preActivityOutDTOList =ysIndexService.queryPurActivity(groupIndexInDTO);
			groupIndexListOutDTO.setPreActivityOutDTOList(preActivityOutDTOList);

			 //柱状图
		    List<StatisGroupDayOutDTO> statisGroupDayList= ysIndexService.queryYsSevenDayData(groupIndexInDTO);
		    groupIndexListOutDTO.setStatisGroupSevenDayOutDTO(statisGroupDayList);

		     
		    groupIndexListOutDTO.setErrorCode(Rescode.SUCCESS, "处理成功");
			return groupIndexListOutDTO;
		}
		/*catch (ApplicationException ae) {
			groupIndexListOutDTO.setErrorCode(ae.errCode, ae.errMsg);
			ae.printStackTrace();

		}*/
		catch (Exception e) {
			groupIndexListOutDTO.setErrorCode(Rescode.DEFAULT_PREFIX, "处理出现异常");
				e.printStackTrace();
		}
		return groupIndexListOutDTO;
		
	}
	
}
